FIG. 1 illustrates a conventional OpenGL state diagram 100 concerned with processing fragments in graphics processing pipeline. The state diagram 100 comprises a number of rendering operations 110 indicating potential operations to be performed on an incoming fragment 120. Conventionally, a host system may set the state via one or more OpenGL calls. For example, the host system may “turn on” fog by enabling the fog operation. Consequently, the graphics pipeline is directed to apply fog to all fragments processed in the graphics processing pipeline until the fog operation is disabled by the host system. The state diagram 100 in FIG. 1 is exemplary and does not reflect all possible state variables. Furthermore, the OpenGL specification is one example of a graphics specification concerned with rendering.
The incoming fragment 120 has a color associated with it that is modified by a graphics pipeline that processes the fragment to implement whatever rendering operations 110 are “enabled” in the current state. For example, if the “fog” operation is enabled, then the graphics pipeline performs a fog operation on any fragments that are processed while the fog operation is still enabled. A final color value 130 for the fragment is arrived at after applying the rendering operations 110.
While some state variables may be “enabled” or “disabled,” there may also be “mode” and “value” state variables. An example of a mode state variable is blending, which allows a particular type of blending to be selected. An example of a value state variable is color. For example, color may be specified by a command that specifies a value between 0 and 1 for each of red, green, blue.
In order to render the fragments in accordance with the current state specified by the host system, hardware in a graphics processing pipeline can be programmed to reflect the current state. The process of determining suitable instructions for programming hardware in a graphics processing pipeline to reflect the current state is referred to as “validating” or performing validation.
Therefore, it would be advantageous to provide a method and device that validates an integrated circuit graphics pipeline. It would be further advantageous if the method and device efficiently determines a schedule of instructions to program the integrated circuit graphics pipeline, based on a current OpenGL state.